{smcl}
{* 01feb2017}{...}
{hi:help eststo}{right:also see: {helpb esttab}, {helpb estout}, {helpb estadd}, {helpb estpost}}
{right: {browse "http://repec.sowi.unibe.ch/stata/estout/"}}
{hline}

{title:Title}

{p 4 4 2}{hi:eststo} {hline 2} Store estimates


{title:Syntax}{smcl}

{p 8 15 2}
[{cmd:_}]{cmd:eststo} [{it:name}]
[{cmd:,} {it:{help eststo##options:options}} ]
[ {cmd::} {it:{help estimation_command}} ]

{p 8 15 2}
[{cmd:_}]{cmd:eststo dir}

{p 8 15 2}
[{cmd:_}]{cmd:eststo drop} {{it:#}|{it:name}} [ {{it:#}|{it:name}} ... ]

{p 8 15 2}
[{cmd:_}]{cmd:eststo clear}

{marker options}
    {it:options}{col 23}description
    {hline 56}
    [{ul:{cmd:no}}]{cmdab:e:sample}{col 23}{...}
do not/do store {cmd:e(sample)}
    {cmdab:t:itle:(}{it:string}{cmd:)}{col 23}{...}
specify a title for the stored set
    {cmdab:p:refix:(}{it:prefix}{cmd:)}{col 23}{...}
specify a name prefix; default is {cmd:est}
    {cmdab:add:scalars(}{it:...}{cmd:)}{col 23}{...}
add scalar statistics
    {cmdab:r:efresh}[{cmd:(}{it:#}{cmd:)}]{col 23}{...}
overwrite a previously stored set
    {cmdab:noc:opy}{col 23}{...}
clear {cmd:e()} after storing the set
    {cmdab:mis:sing}{col 23}{...}
use missing values in the {cmd:by} groups
    {hline 56}
        
{p 4 4 2}
{cmd:by} is allowed with {cmd:eststo} if {cmd:eststo} 
is used as a prefix command, i.e. specify

        {cmd:by} {it:...} {cmd::} {cmd:eststo} {it:...} {cmd::} {it:estimation_command}
        
{p 4 4 2}
to apply {it:estimation_command} to each {cmd:by} group and store an estimation
set for each group; see help {help by}. Note that the implementation of {cmd:by} 
with {cmd:eststo} requires {it:estimation_command} 
to follow {help language:standard Stata syntax} and 
allow the {it:{help if}} qualifier. Do not use the 
{bind:{cmd:by} {it:...}{cmd:: eststo:}} construct with
{cmd:svy} commands.   


{title:Description}

{p 4 4 2}
{cmd:eststo} stores a  copy of the active estimation results for later
tabulation. If {it:name} is provided, the estimation set is stored
under {it:name}. If {it:name} is not provided, the estimation set is
stored under {cmd:est}{it:#}, where {it:#} is a counter for the
number of stored estimation sets.  

{p 4 4 2}
{cmd:eststo} may be used in two ways: Either after fitting a model as
in

        {com}. regress y x
        . eststo{txt}

{p 4 4 2}
or as a prefix command (see help {help prefix}):

        {com}. eststo: regress y x{txt}

{p 4 4 2}
{cmd:_eststo} is a variant on {cmd:eststo} that, by default, does not
store the estimation sample information contained in {cmd:e(sample)}.
Essentially, {cmd:_eststo} is a shortcut to {cmd:eststo, noesample}.

{p 4 4 2}
{cmd:eststo dir} displays a list of the stored estimates.

{p 4 4 2}
{cmd:eststo drop} drops estimation sets stored by {cmd:eststo}. If {it:name} is
provided, the estimation set stored under {it:name}
is dropped (if {cmd:*} or {cmd:?} wildcards are used {it:name}, 
all matching sets are dropped). Alternatively, if {it:#} is provided, 
the estimation set stored as {cmd:est}{it:#} is dropped.

{p 4 4 2}
{cmd:eststo clear} drops all estimation sets stored by {cmd:eststo} (and clears
{cmd:eststo}'s global macros).

{p 4 4 2}
{cmd:eststo} is an alternative to official Stata's
{helpb estimates store}. The main differences are:

{p 8 12 2}
{space 1}o{space 2}{cmd:eststo} does not require the user to specify a
name for the stored estimation set.

{p 8 12 2}
{space 1}o{space 2}{cmd:eststo} may be used as a prefix command (see
help {help prefix}).

{p 8 12 2}
{space 1}o{space 2}{cmd:eststo} provides the possibility to store
estimates without the {cmd:e(sample)} function (either specify the
{cmd:noesample} option or use the {cmd:_eststo} command). Omitting
{cmd:e(sample)} saves memory and also speeds up tabulation programs
such as {helpb estimates table}, {helpb estout} or {helpb esttab}.
{hi:Warning:} Some post-estimation commands may not work with
estimation sets that do not contain the {cmd:e(sample)}.

{p 8 12 2}
{space 1}o{space 2}{cmd:eststo} can add additional scalar statistics to
be stored with the estimation set.


{title:Options}
{marker esample}
{p 4 8 2}
{cmd:esample} causes the information in {cmd:e(sample)} to be stored
with the estimates. This is the default in {cmd:eststo}. Type
{cmd:noesample} or use the {cmd:_eststo} command to omit the
{cmd:e(sample)}. Note that some post-estimation commands may not be
working correctly with estimation sets that have been stored without
{cmd:e(sample)}.

{p 4 8 2}
{cmd:title(}{it:string}{cmd:)} specifies a title for the stored
estimation set.
{p_end}
{marker addscalars}
{p 4 8 2}
{cmd:addscalars(}{it:name exp} [{it:...}] [{cmd:,} {cmdab:r:eplace}]{cmd:)}
may be used to add additional results to the {cmd:e()}-scalars of the
estimation set before storing it. Specify the names and values of the
scalars in pairs. For example, {cmd:addscalars(one 1 two 2)} would
add {cmd:e(one)} = {cmd:1} and {cmd:e(two)} = {cmd:2}. See below for
an example. The {cmd:replace} suboption permits overwriting existing
{cmd:e()}-returns. Not allowed as names are "b", "V", or "sample".
See {helpb estadd} for a more sophisticated tool to add additional
results to {cmd:e()}-returns.

{p 4 8 2}
{cmd:prefix(}{it:prefix}{cmd:)} specifies a custom prefix for the 
automatic names of the stored estimation sets. The default prefix 
is {cmd:est}. 

{p 4 8 2}
{cmd:refresh}[{cmd:(}{it:#}{cmd:)}] may be used to overwrite a
previously stored estimation set instead of storing the estimates
under a new name. {cmd:refresh}, specified without argument, will
overwrite the last saved set. Alternatively,
{cmd:refresh(}{it:#}{cmd:)} will overwrite the set named
{cmd:est}{it:#} if it exists. If {it:name} is provided to {cmd:eststo},
existing sets of the same name will always be overwritten whether or
not {cmd:refresh} is specified. {cmd:refresh()} with argument is not
allowed in this case.

{p 4 8 2}
{cmd:nocopy} specifies that after the estimation set has been stored,
it no longer be available as the active estimation set.

{p 4 8 2}
{cmd:missing} is for use of {cmd:eststo} with the {cmd:by} prefix command and 
causes missing values to be treated like any other values in the {cmd:by} 
variables. The default is to discard observations with missing values in the 
{cmd:by} variables.


{title:Examples}

{p 4 4 2}
Applying {cmd:eststo} after fiting a model to store the model's results, 
as in the following example:

        {com}. sysuse auto
        {txt}(1978 Automobile Data)
        
        {com}. quietly regress price weight
        {txt}
        {com}. eststo model1
        {txt}
        {com}. quietly regress turn weight foreign
        {txt}
        {com}. eststo model2
        {txt}
        {com}. estout
        {res}
        {txt}{hline 38}
        {txt}                   model1       model2
        {txt}                        b            b
        {txt}{hline 38}
        {txt}weight      {res}     2.044063     .0042183{txt}
        {txt}foreign     {res}                 -1.809802{txt}
        {txt}_cons       {res}    -6.707353     27.44963{txt}
        {txt}{hline 38}


{p 4 4 2}
Applying {cmd:eststo} as a prefix commmand to fit and store a model in one step:

        {com}. eststo model1: quietly regress price weight
        {txt}
        {com}. eststo model2: quietly regress turn weight foreign
        {txt}
        {com}. estout
        {res}
        {txt}{hline 38}
        {txt}                   model1       model2
        {txt}                        b            b
        {txt}{hline 38}
        {txt}weight      {res}     2.044063     .0042183{txt}
        {txt}foreign     {res}                 -1.809802{txt}
        {txt}_cons       {res}    -6.707353     27.44963{txt}
        {txt}{hline 38}
        
        
{p 4 4 2}
Using {cmd:eststo} with automatic names:

        {com}. eststo clear
        {txt}
        {com}. eststo: quietly regress price weight
        {txt}({res}est1{txt} stored)
        
        {com}. eststo: quietly regress turn weight foreign
        {txt}({res}est2{txt} stored)
        
        {com}. estout
        {res}
        {txt}{hline 38}
        {txt}                     est1         est2
        {txt}                        b            b
        {txt}{hline 38}
        {txt}weight      {res}     2.044063     .0042183{txt}
        {txt}foreign     {res}                 -1.809802{txt}
        {txt}_cons       {res}    -6.707353     27.44963{txt}
        {txt}{hline 38}
        

{p 4 4 2}
Adding ancillary statistics:

        {com}. eststo clear
        {txt}
        {com}. quietly regress price weight mpg
        {txt}
        {com}. test weight = mpg
        
        {txt} ( 1)  {res}weight - mpg = 0
        
        {txt}       F(  1,    71) ={res}    0.36
        {txt}{col 13}Prob > F ={res}    0.5514
        {txt}
        {com}. eststo, add(p_diff r(p))
        {txt}(e({res}p_diff{txt}) = {res}.55138216{txt} added)
        ({res}est1{txt} stored)
        
        {com}. estout, stat(p_diff)
        {res}
        {txt}{hline 25}
        {txt}                     est1
        {txt}                        b
        {txt}{hline 25}
        {txt}weight      {res}     1.746559{txt}
        {txt}mpg         {res}    -49.51222{txt}
        {txt}_cons       {res}     1946.069{txt}
        {txt}{hline 25}
        {txt}p_diff      {res}     .5513822{txt}
        {txt}{hline 25}
        

{p 4 4 2}
Using the {cmd:by} prefix to store subbroup models:

        {com}. eststo clear
        {txt}
        {com}. quietly by foreign: eststo: quietly reg price weight mpg
        {txt}
        {com}. esttab, label nodepvar nonumber
        {res}
        {txt}{hline 52}
        {txt}                         Domestic         Foreign   
        {txt}{hline 52}
        {txt}Weight (lbs.)       {res}        4.415***        5.156***{txt}
                            {res} {ralign 12:{txt:(}4.66{txt:)}}    {ralign 12:{txt:(}5.85{txt:)}}   {txt}
        
        {txt}Mileage (mpg)       {res}        237.7          -19.78   {txt}
                            {res} {ralign 12:{txt:(}1.71{txt:)}}    {ralign 12:{txt:(}-0.34{txt:)}}   {txt}
        
        {txt}Constant            {res}     -13285.4*        -5065.8   {txt}
                            {res} {ralign 12:{txt:(}-2.32{txt:)}}    {ralign 12:{txt:(}-1.58{txt:)}}   {txt}
        {txt}{hline 52}
        {txt}Observations        {res}           52              22   {txt}
        {txt}{hline 52}
        {txt}t statistics in parentheses
        {txt}* p<0.05, ** p<0.01, *** p<0.001


{title:Returned results}

{p 4 4 2}
The name under which an estimation set is stored, is added to the set in 
{cmd:e(_estimates_name)}.

{p 4 4 2}
In addition, {cmd:eststo} maintains two global macros. {cmd:$eststo} contains a list
of the names of the stored estimation sets. {cmd:$eststo_counter}
contains the count of stored estimation sets.


{title:Acknowledgements}

{p 4 4 2}
Bill Gould suggested to make {cmd:eststo} "byable". 


{title:Author}

{p 4 4 2}
Ben Jann, Institute of Sociology, University of Bern, jann@soz.unibe.ch


{title:Also see}

    Manual:  {hi:[R] estimates}

{p 4 13 2}Online:  help for
 {helpb estimates},
 {helpb esttab},
 {helpb estout},
 {helpb estadd},
 {helpb estpost}
{p_end}

